# 代理

# 今天我们需要去找A同学聊聊天，聊聊他违法乱纪的事情，之后A同学的律师B跑出来说，你有什么事情可以找我，我是A的代理律师
# 从法律上来说，B处理的所有事情都是以A的名义在做，理论上，B有任何不了解、不确定、或者自己处理不了事情，都可以问A，当然他也可以自己做

# C同学和他的女朋友每天写信，中间有个坏蛋D，每天帮他们送信。D每天都偷偷看信，然后封好，然后转交出去。C和女朋友都没有发现
# 有一天，D中间截胡了。他冒充C和他的女朋友聊了半年，C以为女朋友跟自己分手了，其实他女朋友一直再跟D聊天

# 装饰器的本质其实也是代理。当我们需要调用A函数的时候，实际上是经过B函数的手，转交给A函数。
# B函数对其进行了一些外部不可知，也是自定义的逻辑

# 对于一个代理函数，也就是我们例子中的B，
# 1. 代理对象和被代理对象有相同的入参格式和返回结果格式
# 2. 代理对象，无论是基于类还是基于函数，除了要接受被代理对象的入参外，还要接收被代理对象本身

# 代理的好处是什么
# 1. 如果被代理对象有多个，可以提升代码的复用性
# 2. 使得我们的代码实现职责分离，提升可维护性
# 3. 不会侵入源代码
